#coding:utf-8

####################################################################
##  一，脚本语法说明：
##  [类型字段, 命令字段, 匹配结果字段, 超时时间字段, 错误等级字段]
##  1，类型字段：
##        0：AT命令
##        1：延迟
##        2：数据
##		  3：命令嵌套
##	2，命令字段：
##		1）AT命令
##		[0, 'AT命令字符串', '匹配结果', 超时时间（单位s）, 错误等级字段]
##		2）延迟命令
##		[1, 延迟时间（单位ms）, '', '', '']
##		3）发送数据
##		[2, '数据内容', '匹配结果', 超时时间(单位s), 错误等级字段]
##		4）命令嵌套
##		[2, 命令列表名称, '', '', 错误等级字段]
##	3，匹配结果字段：
##		1）单行字符串('string')：按照字符串查找方式，匹配AT返回中的某一行，如果匹配成功就认为命令执行成功
##		2) 单行正则表达式(Reg('reg')): 按照正则表达式匹配方式，匹配AT返回中某一行，如果匹配成功就认为命令执行成功
##		3）多行字符串(FullMatch('string_line1\r\nstring_line2')): 按照字符串查找方式，匹配AT返回中的多行，如果匹配成功就认为命令执行成功
##		4）多行正则表达式(ReMatch('reg1[\s\S]+reg2')): 按照正则表达式匹配方式，匹配AT返回的多行，如果匹配成功就认为命令执行成功
##	4，超时时间字段：
##		如果执行【命令字段】后没有匹配到【匹配结果字段】，就会等待超时，超时时间单位为s
##	5，错误等级字段
##		0：忽略该条命令匹配错误继续执行下一行
##		1：如果该条命令匹配错误就停止执行
####################################################################
apn1 = ''
apn2 = ''

execfile(os.path.abspath(os.path.join(filename, "../"))+'\\basic.cfg')
execfile(os.path.abspath(os.path.join(filename, "../"))+'\\pdp.py')
execfile(os.path.abspath(os.path.join(filename, "../"))+'\\cip.py')
execfile(os.path.abspath(os.path.join(filename, "../"))+'\\ssl.py')
execfile(os.path.abspath(os.path.join(filename, "../"))+'\\socket.py')
execfile(os.path.abspath(os.path.join(filename, "../"))+'\\ftp.py')
execfile(os.path.abspath(os.path.join(filename, "../"))+'\\mqtt.py')
execfile(os.path.abspath(os.path.join(filename, "../"))+'\\http.py')
execfile(os.path.abspath(os.path.join(filename, "../"))+'\\fs.py')


atReady = [
	[0, 'AT', 'OK', 1, 0],
	[0, 'AT', 'OK', 1, 0],
	[1, 2000,"","",""],
	[2, '+++', 'OK', 2, 0],
	[0, 'AT', 'OK', 1, 1],
]
netReady = [
	[0, 'AT+CFUN=1', 'OK', 20, 0],
	[0, 'AT+CREG?', Reg('\+CREG: 0,[1|5]'), 5, 0],
	[0, 'AT+CREG?', Reg('\+CREG: 0,[1|5]'), 5, 0],
	[0, 'AT+CREG?', Reg('\+CREG: 0,[1|5]'), 5, 0],
	[1, 2000,"","",""],
	[0, 'AT+CREG?', Reg('\+CREG: 0,[1|5]'), 5, 0],
	[1, 2000,"","",""],
	[0, 'AT+CREG?', Reg('\+CREG: 0,[1|5]'), 5, 0],
	[0, 'AT+CREG?', Reg('\+CREG: 0,[1|5]'), 10, 0],
	[0, 'AT+CREG?', Reg('\+CREG: 0,[1|5]'), 20, 0],
	[0, 'AT+CREG?', Reg('\+CREG: 0,[1|5]'), 20, 0],
	[0, 'AT+CREG?', Reg('\+CREG: 0,[1|5]'), 20, 0],
	[0, 'AT+CGREG=0', 'OK', 5, 1],
	[0, 'AT+CGREG?', Reg('\+CGREG: 0,[1|5]'), 5, 0],
	[0, 'AT+CGREG?', Reg('\+CGREG: 0,[1|5]'), 10, 0],
	[0, 'AT+CGREG?', Reg('\+CGREG: 0,[1|5]'), 10, 0],
	[0, 'AT+CGREG?', Reg('\+CGREG: 0,[1|5]'), 1, 1],
]

init = [
	[0,'AT+CIPSHUT', 'SHUT OK', 30, 1],
	[0,'AT+CIPSHOWTP=0', 'OK', 1, 1],
	[0,'AT+CIPSRIP=0', 'OK', 1, 1],
	[0,'AT+CIPQSEND=0', 'OK', 1, 1],
	[0,'AT+CIPRXGET=0', 'OK', 20,1],
	[0,'AT+CIPMUX=0', 'OK', 1, 1],
	[0,'AT+CIPMODE=0', 'OK', 1, 1],
	[0,'AT+CIPHEAD=0', 'OK', 1, 1],
	[0,'AT+CIPSSL=0', 'OK', 5, 1],
	[0,'AT+SAPBR=0,1', Reg('\+CME .+'), 5, 0],
	[0,'AT+SAPBR=0,2', Reg('\+CME .+'), 5, 0],
	[0,'AT+HTTPTERM', Reg('\+CME .+'), 5, 0],
	[0,'AT+FTPQUIT', Reg('\+CME .+'), 5, 0],
]

init = [
	[0,'AT+CIPSHUT', 'SHUT OK', 30, 1],
	[0,'AT+CIPSHOWTP=0', 'OK', 1, 1],
	[0,'AT+CIPSRIP=0', 'OK', 1, 1],
	[0,'AT+CIPQSEND=0', 'OK', 1, 1],
	[0,'AT+CIPRXGET=0', 'OK', 20,1],
	[0,'AT+CIPMUX=0', 'OK', 1, 1],
	[0,'AT+CIPMUX=0', 'OK', 1, 1],
	[0,'AT+CIPMODE=0', 'OK', 1, 1],
	[0,'AT+CIPHEAD=0', 'OK', 1, 1],
	[0,'AT+CIPSSL=0', 'OK', 5, 1],
	[0,'AT+SAPBR=0,1', Reg('\+CME .+'), 5, 0],
	[0,'AT+SAPBR=0,2', Reg('\+CME .+'), 5, 0],
	[0,'AT+HTTPTERM', Reg('\+CME .+'), 5, 0],
	[0,'AT+FTPQUIT', Reg('\+CME .+'), 5, 0],
]
heartbeatack = [
	[0,'AT+CIPSEND', FullMatch('>'), 1, 1],
	[2,'22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222\x1A', 'DATA ACCEPT:125', 8, 1],

	[1, 30000,"","",""],
]

heartbeat_qsend = [
	[0,'AT+CIPSEND', FullMatch('>'), 1, 1],
	[2,'22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222\x1A', 'DATA ACCEPT:125', 8, 1],
]
heartbeat_qsend_5 = [
	[3,heartbeat_qsend,'','',1],
	[1, 5000,"","",""],
]
heartbeat_qsend_10 = [
	[3,heartbeat_qsend,'','',1],
	[1, 10000,"","",""],
]

heartbeat_qsend_30 = [
	[3,heartbeat_qsend,'','',1],
	[1, 30000,"","",""],
]

heartbeat_qsend_60 = [
	[3,heartbeat_qsend,'','',1],
	[1, 60000,"","",""],
]

heartbeat_nsend = [
	[0,'AT+CIPSEND', FullMatch('>'), 1, 1],
	[2,'3333333333333333333333333333333333333333333333333333333333333\x1A', FullMatch('SEND OK\r\n3333333333333333333333333333333333333333333333333333333333333\r\n'), 20, 1],
]

heartbeat_nsend_10 = [
	[3,heartbeat_nsend,'','',1],
	[1, 10000,"","",""],
]

heartbeat_nsend_30 = [
	[3,heartbeat_nsend,'','',1],
	[1, 30000,"","",""],
]

heartbeat_nsend_60 = [
	[3,heartbeat_nsend,'','',1],
	[1, 60000,"","",""],
]


heartbeat = [
	[0,'AT+CIPQSEND=1', 'OK', 1, 1],
	[3, heartbeat_qsend_10, 50, '', 1],
	[3, heartbeat_qsend_5, 50, '', 1],
	[3, heartbeat_qsend_30, 50, '', 1],
	[3, heartbeat_qsend_60, 50, '', 1],
	[0,'AT+CIPQSEND=0', 'OK', 1, 1],
	[3, heartbeat_nsend_10, 2, '', 1],
	[3, heartbeat_nsend_30, 50, '', 1],
	[3, heartbeat_nsend_60, 50, '', 1],	
]

cmdlist = [
	[3, atReady,'','',1],
	[3, netReady,'','',1],
    [0, 'AT*EXASSERT=1','OK',5,1],
	[3,init, '', '', 1],
	[0,'AT+TCPUSERPARAM=1,6', 'OK', 1, 1],
	[0,'AT+CIPSTART="TCP","121.40.198.143",12415', 'CONNECT OK', 20, 1],
	
	[3, heartbeat,100000,'',1],
	
	[0,'AT+CIPCLOSE', 'CLOSE OK', 20, 1],
]


